#include<iostream>
using namespace std;
const int N=1e4+10;
int n;
int p[N],q[N];
int res[N];
int cnt=0;
void merge(int l1,int r1,int l2,int r2,int u)
{
	if(l1>r1)
	return ;
//	cout<<l1<<' '<<r1<<' '<<l2<<' '<<r2<<' '<<u<<endl;
	res[u]=p[l1];
	int i=l2;
	cnt=max(cnt,u);
	for(;i<=r2;i++)
	{
		if(q[i]==res[u])
		break;
	}
	int len=i-l2;
	merge(l1+1,len+l1,l2,l2+len-1,u*2+1);
	merge(len+l1+1,r1,i+1,r2,u*2);
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	cin>>q[i];
	for(int i=1;i<=n;i++)
	cin>>p[i];
	merge(1,n,1,n,1);
	for(int i=1;i<cnt;i++)
	{
		if(res[i])
		cout<<res[i]<<' ';
	}
    cout<<res[cnt]<<endl;
	return 0;
}
